草庐IT

c++ - 实现安全的 nullptr

全部标签

c++ - 如何在 Windows 中用 c/c++ 实现 hello world 共享内存?

共享内存从一开始就稳定吗?我更喜欢这种方式而不是进程间/应用程序通信,因为那样我不需要解析数据的开销。在c/c++中是否有一个很好的helloworld演示? 最佳答案 你应该看看Boost.Interprocess.它提供了您需要的功能,并且文档包含有关如何使用它的说明。 关于c++-如何在Windows中用c/c++实现helloworld共享内存?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

c - 跨进程使用 Mutex

操作系统:Windows语言:C/C++设计要求跨进程及其子进程使用互斥变量。如果我在一个进程中创建互斥锁,我必须在另一个进程中打开互斥锁以检查关键部分的可用性。要打开互斥量,我需要知道在父进程中创建的互斥量的名称。假设,如果我将互斥量保留为我的应用程序名称。我可以知道互斥量的名称,因为它是固定的。但是,如果我并行加载我的应用程序的第二个实例,就会出现困惑。以下是更好的主意吗?我有一个想法,将父进程中的互斥量命名为进程ID。所以现在我需要从子进程/大子进程中获取父进程ID以打开互斥锁。我想没有直接的方法可以从大子进程中获取父进程ID。所以我必须在每个创建进程api中传递进程ID(在lp

c - 未解析的外部符号 _sleep 使用 sleep()?

我正在尝试使用sleep()命令。我在Windows上使用C(visualstudio编译器)。命令很简单sleep(5);我有windows.h,time.h,stdio.h。我还需要什么? 最佳答案 你想要Sleep(注意大小写)在WindowsAPI中定义。它可以通过Windows.h访问。 关于c-未解析的外部符号_sleep使用sleep()?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

ruby - 使用 'standard' Ruby 1.9.2 在 Windows XP 上安装 ActiveScriptRuby 是否安全

我正在使用ruby1.9.2p180(2011-02-18)[i386-mingw32]。安装安全吗ActiveScriptRuby(基于1.8.7)?更新(在LuisLavena的鼓励下):我成功安装了ActiveScriptRuby和pik。证据:---------------------PATHC:\Ruby192\binC:\WINDOWS\system32...---------------------pikls187:ruby1.8.7(2010-12-23patchlevel330)[i386-mswin32]*192:ruby1.9.2p180(2011-02-18)[

c - 在没有 C 运行时的情况下与 VS2010 链接时未解析的符号

我正在处理一个有大小限制的项目,所以我不想链接到VisualStudio的C运行时。我使用静态运行时(/MT)和/NODEFAULTLIB:LIBCMT标志来执行此操作。我已经通过检查VS附带的运行时源解决了大部分问题。但是,编译器仍然会生成一些未解析的外部符号:_chkstk:生成用于检查大于4k的函数的堆栈。我可以关闭它或提供虚拟功能吗?__libm_sse2_pow和其他SSE调用:我可以通过关闭SSE代码生成来避免这些,但如果可能的话,我希望拥有它们。这些符号似乎来自Intel库(libmmd.lib?)。为什么这部分仍然是C运行时?_ftol2_sse:将浮点型转换为长整型。

CreateFileMapping 以 "Not enough disk space"错误结束

我在理解如何使用API函数CreateFileMapping(...)时遇到问题。我一直在尝试映射一个小文件,然后反转它的内容。它只有大约1Kb,但我一直收到“内存不足”错误。我已通过调用CreateFile打开了文件,并使用GetFileSize获取了它的大小。然后我调用:CreateFileMapping(fileHandle,NULL,PAGE_READWRITE|SEC_RESERVE,fileSize+1,fileSize+1,NULL);我怀疑问题是将fileSize+1作为dwFileOffsetHigh和dwFileOffsetLow传递,但我很难理解应该做什么我改为传

c++ - 在 C 中,如何在执行另一个功能时不断获取用户输入?

这个问题真的困扰着我如何用C方式做到这一点:在无限循环中显示一系列数字(1、2、3、4、5...等)。如果有人按下特定键(比如退格键),程序应该退出。我的尝试是制作一个循环,然后每次都获取用户输入。intmain(){charuserInput;inti=0;while(true){Sleep(1000);printf("%d",++i);userInput=getch();fflush(stdin);if(userInput=='\b'){break;}}getch();return0;}但这不是问题要找的答案。它确实想在检查用户输入的同时继续打印数字。任何人都可以帮助新手吗?谢谢!

c - MPI基础类(class)

您好,我想学习在C中使用MPI。我在Windows7上使用Codeblocks我运行了这个程序:#include#includevoidmain(intargc,char*argv[]){interr;err=MPI_Init(&argc,&argv);printf("Helloworld!\n");err=MPI_Finalize();}但出于某种原因,我在“mpi.h”处遇到错误。有没有办法添加库? 最佳答案 首先,安装MPI的实现。过去我使用过MPICH,但还有其他可用的实现。我知道另一个是LAM/MPI。查看维基百科页面以获

c# - 无法使用集合初始值设定项实现类型 XYZ,因为它不实现 'System.Collections.IEnumerable'

我有以下类(class):publicclassCommentList{stringItemType;stringComment1;stringStatus1;stringDiscussionBoardId;GuidCourseId;GuidCommentID;}我正在尝试执行以下LINQ语句:Listquery=fromcindb.Commentsjoinsindb.Statusonc.StatusIdequalss.StatusIdjoindindb.DiscussionBoardsonc.DiscussionBoardIdequalsd.DiscussionBoardIdwher

c# - 堆栈 <> C# 中的实现

我最近一直在实现递归目录搜索实现,并且我正在使用Stack来跟踪路径元素。当我使用string.Join()连接路径元素时,我发现它们被颠倒了。当我调试该方法时,我查看了堆栈,发现元素本身在Stack的内部数组中是颠倒的,即最近Push()的元素在内部数组的开头,而最近最少的Push()ed元素位于内部数组的末尾。这似乎很落后并且非常违反直觉。有人能告诉我为什么微软会以这种方式实现堆栈吗? 最佳答案 我认为你错了。不是那个Stack.Push在其内部数组的开头内部插入一个项目(它没有)。相反,它从上到下枚举,因为这是人们直观地枚举堆